home *** CD-ROM | disk | FTP | other *** search
- (defun c:SOLID-3D ()
- (setvar "fillmode" 0)
- (setq pt1 (getpoint "first base point: "))
- (setq pt2 (getpoint "second base point: "))
- (setq pt3 (getpoint "third base point: "))
- (setq pt4 (getpoint "fourth base point (RETURN for 3-point base): "))
- (setq pt5 (getpoint "first top point: "))
- (setq pt6 (getpoint "second top point: "))
- (setq pt7 (getpoint "third top point: "))
- (if (/= pt4 nil) (setq pt8 (getpoint "fourth top point: ")))
- (setq h (getdist "height: "))
- (setq r (getint "step resolution: "))
- (setq t1 (getvar "thickness"))
- (setq e (getvar "elevation"))
- (setq e1 e)
- (setq t (setvar "thickness" (/ h r)))
- (setq a1 (angle pt1 pt5))
- (setq a2 (angle pt2 pt6))
- (setq a3 (angle pt3 pt7))
- (if (/= pt4 nil) (setq a4 (angle pt4 pt8)))
- (setq d1 (/ (distance pt1 pt5) r))
- (setq d2 (/ (distance pt2 pt6) r))
- (setq d3 (/ (distance pt3 pt7) r))
- (if (/= pt4 nil) (setq d4 (/ (distance pt4 pt8) r)))
- (defun B3 ()
- (command "SOLID" pt1 pt2 pt3 "" "")
- )
- (defun B4 ()
- (command "SOLID" pt1 pt2 pt3 pt4 "")
- )
- (if (/= pt4 nil) (b4) (b3))
- (defun STEP4 ()
- (setq e (setvar "elevation" (+ e t)))
- (setq pt1 (polar pt1 a1 d1))
- (setq pt2 (polar pt2 a2 d2))
- (setq pt3 (polar pt3 a3 d3))
- (setq pt4 (polar pt4 a4 d4))
- (command "SOLID" pt1 pt2 pt3 pt4 "")
- )
- (defun STEP3 ()
- (setq e (setvar "elevation" (+ e t)))
- (setq pt1 (polar pt1 a1 d1))
- (setq pt2 (polar pt2 a2 d2))
- (setq pt3 (polar pt3 a3 d3))
- (command "SOLID" pt1 pt2 pt3 "" "" )
- )
- (setq n (- r 1))
- (if (/= pt4 nil) (repeat n (step4)) (repeat n (step3)))
- (setvar "elevation" e1)
- (setvar "thickness" t1)
- )